با توجه به داده های قیمت منازل لطفا با سوالات زیر پاسخ دهید.


۱. ماتریس همبستگی متغیرهای مختلف را به دست آورده و سپس رسم نمایید. اعداد به دست آمده را با آزمون فرض معناداری همبستگی بسنجید و سپس ده متغیری که همبستگی بالاتری با قیمت دارند را مشخص نمایید.

train %>% select_if(is.numeric)  -> train_nuemric
cormat <- round(cor(train_nuemric), 4)

melted_cormat <- melt(cormat, na.rm = TRUE)

ggplot(data = melted_cormat, aes(x = Var1, y = Var2, fill = value)) +
  geom_tile(color = "white") +
  scale_fill_gradient2(low = "blue", high = "red", mid = "white", 
                       midpoint = 0, limit = c(-1,1), space = "Lab",name="Pearson\nCorrelation")+
  theme(axis.text.x = element_text(angle = 45, vjust = 1, 
                                   size = 8, hjust = 1),
        axis.text.y = element_text(angle = 0, vjust = 1, 
                                   size = 8, hjust = 1))+
  coord_fixed()

library("Hmisc")
res2 <- rcorr(as.matrix(train_nuemric))
# Extract the correlation coefficients
kable(res2$r, digits = 3)
Id MSSubClass LotFrontage LotArea OverallQual OverallCond YearBuilt YearRemodAdd MasVnrArea BsmtFinSF1 BsmtFinSF2 BsmtUnfSF TotalBsmtSF 1stFlrSF 2ndFlrSF LowQualFinSF GrLivArea BsmtFullBath BsmtHalfBath FullBath HalfBath BedroomAbvGr KitchenAbvGr TotRmsAbvGrd Fireplaces GarageYrBlt GarageCars GarageArea WoodDeckSF OpenPorchSF EnclosedPorch 3SsnPorch ScreenPorch PoolArea MiscVal MoSold YrSold SalePrice
Id 1.000 0.011 -0.011 -0.033 -0.028 0.013 -0.013 -0.022 -0.050 -0.005 -0.006 -0.008 -0.015 0.010 0.006 -0.044 0.008 0.002 -0.020 0.006 0.007 0.038 0.003 0.027 -0.020 0.000 0.017 0.018 -0.030 0.000 0.003 -0.047 0.001 0.057 -0.006 0.021 0.001 -0.022
MSSubClass 0.011 1.000 -0.386 -0.140 0.033 -0.059 0.028 0.041 0.023 -0.070 -0.066 -0.141 -0.239 -0.252 0.308 0.046 0.075 0.003 -0.002 0.132 0.177 -0.023 0.282 0.040 -0.046 0.085 -0.040 -0.099 -0.013 -0.006 -0.012 -0.044 -0.026 0.008 -0.008 -0.014 -0.021 -0.084
LotFrontage -0.011 -0.386 1.000 0.426 0.252 -0.059 0.123 0.089 0.193 0.234 0.050 0.133 0.392 0.457 0.080 0.038 0.403 0.101 -0.007 0.199 0.054 0.263 -0.006 0.352 0.267 0.070 0.286 0.345 0.089 0.152 0.011 0.070 0.041 0.206 0.003 0.011 0.007 0.352
LotArea -0.033 -0.140 0.426 1.000 0.106 -0.006 0.014 0.014 0.104 0.214 0.111 -0.003 0.261 0.299 0.051 0.005 0.263 0.158 0.048 0.126 0.014 0.120 -0.018 0.190 0.271 -0.025 0.155 0.180 0.172 0.085 -0.018 0.020 0.043 0.078 0.038 0.001 -0.014 0.264
OverallQual -0.028 0.033 0.252 0.106 1.000 -0.092 0.572 0.551 0.412 0.240 -0.059 0.308 0.538 0.476 0.295 -0.030 0.593 0.111 -0.040 0.551 0.273 0.102 -0.184 0.427 0.397 0.548 0.601 0.562 0.239 0.309 -0.114 0.030 0.065 0.065 -0.031 0.071 -0.027 0.791
OverallCond 0.013 -0.059 -0.059 -0.006 -0.092 1.000 -0.376 0.074 -0.128 -0.046 0.040 -0.137 -0.171 -0.144 0.029 0.025 -0.080 -0.055 0.118 -0.194 -0.061 0.013 -0.087 -0.058 -0.024 -0.324 -0.186 -0.152 -0.003 -0.033 0.070 0.026 0.055 -0.002 0.069 -0.004 0.044 -0.078
YearBuilt -0.013 0.028 0.123 0.014 0.572 -0.376 1.000 0.593 0.316 0.250 -0.049 0.149 0.391 0.282 0.010 -0.184 0.199 0.188 -0.038 0.468 0.243 -0.071 -0.175 0.096 0.148 0.826 0.538 0.479 0.225 0.189 -0.387 0.031 -0.050 0.005 -0.034 0.012 -0.014 0.523
YearRemodAdd -0.022 0.041 0.089 0.014 0.551 0.074 0.593 1.000 0.180 0.128 -0.068 0.181 0.291 0.240 0.140 -0.062 0.287 0.119 -0.012 0.439 0.183 -0.041 -0.150 0.192 0.113 0.642 0.421 0.372 0.206 0.226 -0.194 0.045 -0.039 0.006 -0.010 0.021 0.036 0.507
MasVnrArea -0.050 0.023 0.193 0.104 0.412 -0.128 0.316 0.180 1.000 0.265 -0.072 0.114 0.364 0.345 0.175 -0.069 0.391 0.085 0.027 0.277 0.201 0.103 -0.038 0.281 0.249 0.253 0.364 0.373 0.160 0.126 -0.110 0.019 0.061 0.012 -0.030 -0.006 -0.008 0.477
BsmtFinSF1 -0.005 -0.070 0.234 0.214 0.240 -0.046 0.250 0.128 0.265 1.000 -0.050 -0.495 0.522 0.446 -0.137 -0.065 0.208 0.649 0.067 0.059 0.004 -0.107 -0.081 0.044 0.260 0.153 0.224 0.297 0.204 0.112 -0.102 0.026 0.062 0.140 0.004 -0.016 0.014 0.386
BsmtFinSF2 -0.006 -0.066 0.050 0.111 -0.059 0.040 -0.049 -0.068 -0.072 -0.050 1.000 -0.209 0.105 0.097 -0.099 0.015 -0.010 0.159 0.071 -0.076 -0.032 -0.016 -0.041 -0.035 0.047 -0.088 -0.038 -0.018 0.068 0.003 0.037 -0.030 0.089 0.042 0.005 -0.015 0.032 -0.011
BsmtUnfSF -0.008 -0.141 0.133 -0.003 0.308 -0.137 0.149 0.181 0.114 -0.495 -0.209 1.000 0.415 0.318 0.004 0.028 0.240 -0.423 -0.096 0.289 -0.041 0.167 0.030 0.251 0.052 0.191 0.214 0.183 -0.005 0.129 -0.003 0.021 -0.013 -0.035 -0.024 0.035 -0.041 0.214
TotalBsmtSF -0.015 -0.239 0.392 0.261 0.538 -0.171 0.391 0.291 0.364 0.522 0.105 0.415 1.000 0.820 -0.175 -0.033 0.455 0.307 0.000 0.324 -0.049 0.050 -0.069 0.286 0.340 0.322 0.435 0.487 0.232 0.247 -0.095 0.037 0.084 0.126 -0.018 0.013 -0.015 0.614
1stFlrSF 0.010 -0.252 0.457 0.299 0.476 -0.144 0.282 0.240 0.345 0.446 0.097 0.318 0.820 1.000 -0.203 -0.014 0.566 0.245 0.002 0.381 -0.120 0.127 0.068 0.410 0.411 0.233 0.439 0.490 0.235 0.212 -0.065 0.056 0.089 0.132 -0.021 0.031 -0.014 0.606
2ndFlrSF 0.006 0.308 0.080 0.051 0.295 0.029 0.010 0.140 0.175 -0.137 -0.099 0.004 -0.175 -0.203 1.000 0.063 0.688 -0.169 -0.024 0.421 0.610 0.503 0.059 0.616 0.195 0.071 0.184 0.138 0.092 0.208 0.062 -0.024 0.041 0.081 0.016 0.035 -0.029 0.319
LowQualFinSF -0.044 0.046 0.038 0.005 -0.030 0.025 -0.184 -0.062 -0.069 -0.065 0.015 0.028 -0.033 -0.014 0.063 1.000 0.135 -0.047 -0.006 -0.001 -0.027 0.106 0.008 0.131 -0.021 -0.036 -0.094 -0.068 -0.025 0.018 0.061 -0.004 0.027 0.062 -0.004 -0.022 -0.029 -0.026
GrLivArea 0.008 0.075 0.403 0.263 0.593 -0.080 0.199 0.287 0.391 0.208 -0.010 0.240 0.455 0.566 0.688 0.135 1.000 0.035 -0.019 0.630 0.416 0.521 0.100 0.825 0.462 0.231 0.467 0.469 0.247 0.330 0.009 0.021 0.102 0.170 -0.002 0.050 -0.037 0.709
BsmtFullBath 0.002 0.003 0.101 0.158 0.111 -0.055 0.188 0.119 0.085 0.649 0.159 -0.423 0.307 0.245 -0.169 -0.047 0.035 1.000 -0.148 -0.065 -0.031 -0.151 -0.042 -0.053 0.138 0.125 0.132 0.179 0.175 0.067 -0.050 0.000 0.023 0.068 -0.023 -0.025 0.067 0.227
BsmtHalfBath -0.020 -0.002 -0.007 0.048 -0.040 0.118 -0.038 -0.012 0.027 0.067 0.071 -0.096 0.000 0.002 -0.024 -0.006 -0.019 -0.148 1.000 -0.055 -0.012 0.047 -0.038 -0.024 0.029 -0.077 -0.021 -0.025 0.040 -0.025 -0.009 0.035 0.032 0.020 -0.007 0.033 -0.047 -0.017
FullBath 0.006 0.132 0.199 0.126 0.551 -0.194 0.468 0.439 0.277 0.059 -0.076 0.289 0.324 0.381 0.421 -0.001 0.630 -0.065 -0.055 1.000 0.136 0.363 0.133 0.555 0.244 0.485 0.470 0.406 0.188 0.260 -0.115 0.035 -0.008 0.050 -0.014 0.056 -0.020 0.561
HalfBath 0.007 0.177 0.054 0.014 0.273 -0.061 0.243 0.183 0.201 0.004 -0.032 -0.041 -0.049 -0.120 0.610 -0.027 0.416 -0.031 -0.012 0.136 1.000 0.227 -0.068 0.343 0.204 0.197 0.219 0.164 0.108 0.200 -0.095 -0.005 0.072 0.022 0.001 -0.009 -0.010 0.284
BedroomAbvGr 0.038 -0.023 0.263 0.120 0.102 0.013 -0.071 -0.041 0.103 -0.107 -0.016 0.167 0.050 0.127 0.503 0.106 0.521 -0.151 0.047 0.363 0.227 1.000 0.199 0.677 0.108 -0.065 0.086 0.065 0.047 0.094 0.042 -0.024 0.044 0.071 0.008 0.047 -0.036 0.168
KitchenAbvGr 0.003 0.282 -0.006 -0.018 -0.184 -0.087 -0.175 -0.150 -0.038 -0.081 -0.041 0.030 -0.069 0.068 0.059 0.008 0.100 -0.042 -0.038 0.133 -0.068 0.199 1.000 0.256 -0.124 -0.124 -0.051 -0.064 -0.090 -0.070 0.037 -0.025 -0.052 -0.015 0.062 0.027 0.032 -0.136
TotRmsAbvGrd 0.027 0.040 0.352 0.190 0.427 -0.058 0.096 0.192 0.281 0.044 -0.035 0.251 0.286 0.410 0.616 0.131 0.825 -0.053 -0.024 0.555 0.343 0.677 0.256 1.000 0.326 0.148 0.362 0.338 0.166 0.234 0.004 -0.007 0.059 0.084 0.025 0.037 -0.035 0.534
Fireplaces -0.020 -0.046 0.267 0.271 0.397 -0.024 0.148 0.113 0.249 0.260 0.047 0.052 0.340 0.411 0.195 -0.021 0.462 0.138 0.029 0.244 0.204 0.108 -0.124 0.326 1.000 0.047 0.301 0.269 0.200 0.169 -0.025 0.011 0.185 0.095 0.001 0.046 -0.024 0.467
GarageYrBlt 0.000 0.085 0.070 -0.025 0.548 -0.324 0.826 0.642 0.253 0.153 -0.088 0.191 0.322 0.233 0.071 -0.036 0.231 0.125 -0.077 0.485 0.197 -0.065 -0.124 0.148 0.047 1.000 0.589 0.565 0.225 0.228 -0.297 0.024 -0.075 -0.015 -0.032 0.005 -0.001 0.486
GarageCars 0.017 -0.040 0.286 0.155 0.601 -0.186 0.538 0.421 0.364 0.224 -0.038 0.214 0.435 0.439 0.184 -0.094 0.467 0.132 -0.021 0.470 0.219 0.086 -0.051 0.362 0.301 0.589 1.000 0.882 0.226 0.214 -0.151 0.036 0.050 0.021 -0.043 0.041 -0.039 0.640
GarageArea 0.018 -0.099 0.345 0.180 0.562 -0.152 0.479 0.372 0.373 0.297 -0.018 0.183 0.487 0.490 0.138 -0.068 0.469 0.179 -0.025 0.406 0.164 0.065 -0.064 0.338 0.269 0.565 0.882 1.000 0.225 0.241 -0.122 0.035 0.051 0.061 -0.027 0.028 -0.027 0.623
WoodDeckSF -0.030 -0.013 0.089 0.172 0.239 -0.003 0.225 0.206 0.160 0.204 0.068 -0.005 0.232 0.235 0.092 -0.025 0.247 0.175 0.040 0.188 0.108 0.047 -0.090 0.166 0.200 0.225 0.226 0.225 1.000 0.059 -0.126 -0.033 -0.074 0.073 -0.010 0.021 0.022 0.324
OpenPorchSF 0.000 -0.006 0.152 0.085 0.309 -0.033 0.189 0.226 0.126 0.112 0.003 0.129 0.247 0.212 0.208 0.018 0.330 0.067 -0.025 0.260 0.200 0.094 -0.070 0.234 0.169 0.228 0.214 0.241 0.059 1.000 -0.093 -0.006 0.074 0.061 -0.019 0.071 -0.058 0.316
EnclosedPorch 0.003 -0.012 0.011 -0.018 -0.114 0.070 -0.387 -0.194 -0.110 -0.102 0.037 -0.003 -0.095 -0.065 0.062 0.061 0.009 -0.050 -0.009 -0.115 -0.095 0.042 0.037 0.004 -0.025 -0.297 -0.151 -0.122 -0.126 -0.093 1.000 -0.037 -0.083 0.054 0.018 -0.029 -0.010 -0.129
3SsnPorch -0.047 -0.044 0.070 0.020 0.030 0.026 0.031 0.045 0.019 0.026 -0.030 0.021 0.037 0.056 -0.024 -0.004 0.021 0.000 0.035 0.035 -0.005 -0.024 -0.025 -0.007 0.011 0.024 0.036 0.035 -0.033 -0.006 -0.037 1.000 -0.031 -0.008 0.000 0.029 0.019 0.045
ScreenPorch 0.001 -0.026 0.041 0.043 0.065 0.055 -0.050 -0.039 0.061 0.062 0.089 -0.013 0.084 0.089 0.041 0.027 0.102 0.023 0.032 -0.008 0.072 0.044 -0.052 0.059 0.185 -0.075 0.050 0.051 -0.074 0.074 -0.083 -0.031 1.000 0.051 0.032 0.023 0.011 0.111
PoolArea 0.057 0.008 0.206 0.078 0.065 -0.002 0.005 0.006 0.012 0.140 0.042 -0.035 0.126 0.132 0.081 0.062 0.170 0.068 0.020 0.050 0.022 0.071 -0.015 0.084 0.095 -0.015 0.021 0.061 0.073 0.061 0.054 -0.008 0.051 1.000 0.030 -0.034 -0.060 0.092
MiscVal -0.006 -0.008 0.003 0.038 -0.031 0.069 -0.034 -0.010 -0.030 0.004 0.005 -0.024 -0.018 -0.021 0.016 -0.004 -0.002 -0.023 -0.007 -0.014 0.001 0.008 0.062 0.025 0.001 -0.032 -0.043 -0.027 -0.010 -0.019 0.018 0.000 0.032 0.030 1.000 -0.006 0.005 -0.021
MoSold 0.021 -0.014 0.011 0.001 0.071 -0.004 0.012 0.021 -0.006 -0.016 -0.015 0.035 0.013 0.031 0.035 -0.022 0.050 -0.025 0.033 0.056 -0.009 0.047 0.027 0.037 0.046 0.005 0.041 0.028 0.021 0.071 -0.029 0.029 0.023 -0.034 -0.006 1.000 -0.146 0.046
YrSold 0.001 -0.021 0.007 -0.014 -0.027 0.044 -0.014 0.036 -0.008 0.014 0.032 -0.041 -0.015 -0.014 -0.029 -0.029 -0.037 0.067 -0.047 -0.020 -0.010 -0.036 0.032 -0.035 -0.024 -0.001 -0.039 -0.027 0.022 -0.058 -0.010 0.019 0.011 -0.060 0.005 -0.146 1.000 -0.029
SalePrice -0.022 -0.084 0.352 0.264 0.791 -0.078 0.523 0.507 0.477 0.386 -0.011 0.214 0.614 0.606 0.319 -0.026 0.709 0.227 -0.017 0.561 0.284 0.168 -0.136 0.534 0.467 0.486 0.640 0.623 0.324 0.316 -0.129 0.045 0.111 0.092 -0.021 0.046 -0.029 1.000
# Extract p-values
kable(res2$P, digits = 3)
Id MSSubClass LotFrontage LotArea OverallQual OverallCond YearBuilt YearRemodAdd MasVnrArea BsmtFinSF1 BsmtFinSF2 BsmtUnfSF TotalBsmtSF 1stFlrSF 2ndFlrSF LowQualFinSF GrLivArea BsmtFullBath BsmtHalfBath FullBath HalfBath BedroomAbvGr KitchenAbvGr TotRmsAbvGrd Fireplaces GarageYrBlt GarageCars GarageArea WoodDeckSF OpenPorchSF EnclosedPorch 3SsnPorch ScreenPorch PoolArea MiscVal MoSold YrSold SalePrice
Id NA 0.670 0.714 0.205 0.279 0.630 0.627 0.401 0.055 0.848 0.820 0.762 0.556 0.689 0.831 0.091 0.752 0.930 0.442 0.831 0.796 0.150 0.910 0.298 0.450 0.998 0.527 0.501 0.258 0.985 0.912 0.075 0.959 0.029 0.812 0.419 0.978 0.403
MSSubClass 0.670 NA 0.000 0.000 0.213 0.023 0.288 0.121 0.382 0.008 0.012 0.000 0.000 0.000 0.000 0.076 0.004 0.894 0.929 0.000 0.000 0.371 0.000 0.123 0.082 0.002 0.126 0.000 0.631 0.816 0.646 0.094 0.320 0.752 0.769 0.604 0.414 0.001
LotFrontage 0.714 0.000 NA 0.000 0.000 0.040 0.000 0.002 0.000 0.000 0.084 0.000 0.000 0.000 0.005 0.183 0.000 0.000 0.802 0.000 0.064 0.000 0.834 0.000 0.000 0.018 0.000 0.000 0.002 0.000 0.711 0.015 0.152 0.000 0.907 0.698 0.796 0.000
LotArea 0.205 0.000 0.000 NA 0.000 0.830 0.587 0.599 0.000 0.000 0.000 0.920 0.000 0.000 0.051 0.855 0.000 0.000 0.066 0.000 0.586 0.000 0.497 0.000 0.000 0.355 0.000 0.000 0.000 0.001 0.484 0.436 0.099 0.003 0.146 0.963 0.586 0.000
OverallQual 0.279 0.213 0.000 0.000 NA 0.000 0.000 0.000 0.000 0.000 0.024 0.000 0.000 0.000 0.000 0.245 0.000 0.000 0.125 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.246 0.013 0.013 0.230 0.007 0.296 0.000
OverallCond 0.630 0.023 0.040 0.830 0.000 NA 0.000 0.005 0.000 0.077 0.124 0.000 0.000 0.000 0.269 0.330 0.002 0.036 0.000 0.000 0.020 0.620 0.001 0.028 0.363 0.000 0.000 0.000 0.899 0.213 0.007 0.330 0.036 0.940 0.009 0.893 0.093 0.003
YearBuilt 0.627 0.288 0.000 0.587 0.000 0.000 NA 0.000 0.000 0.000 0.061 0.000 0.000 0.000 0.694 0.000 0.000 0.000 0.145 0.000 0.000 0.007 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.231 0.054 0.850 0.189 0.636 0.603 0.000
YearRemodAdd 0.401 0.121 0.002 0.599 0.000 0.005 0.000 NA 0.000 0.000 0.010 0.000 0.000 0.000 0.000 0.017 0.000 0.000 0.638 0.000 0.000 0.121 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.084 0.139 0.824 0.695 0.412 0.172 0.000
MasVnrArea 0.055 0.382 0.000 0.000 0.000 0.000 0.000 0.000 NA 0.000 0.006 0.000 0.000 0.000 0.000 0.008 0.000 0.001 0.310 0.000 0.000 0.000 0.152 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.474 0.019 0.655 0.256 0.820 0.755 0.000
BsmtFinSF1 0.848 0.008 0.000 0.000 0.000 0.077 0.000 0.000 0.000 NA 0.056 0.000 0.000 0.000 0.000 0.014 0.000 0.000 0.010 0.025 0.871 0.000 0.002 0.091 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.313 0.018 0.000 0.892 0.548 0.584 0.000
BsmtFinSF2 0.820 0.012 0.084 0.000 0.024 0.124 0.061 0.010 0.006 0.056 NA 0.000 0.000 0.000 0.000 0.572 0.713 0.000 0.007 0.003 0.220 0.548 0.120 0.179 0.073 0.001 0.144 0.486 0.009 0.906 0.163 0.252 0.001 0.111 0.850 0.561 0.226 0.664
BsmtUnfSF 0.762 0.000 0.000 0.920 0.000 0.000 0.000 0.000 0.000 0.000 0.000 NA 0.000 0.000 0.865 0.282 0.000 0.000 0.000 0.000 0.116 0.000 0.251 0.000 0.049 0.000 0.000 0.000 0.839 0.000 0.923 0.428 0.631 0.180 0.363 0.183 0.115 0.000
TotalBsmtSF 0.556 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 NA 0.000 0.000 0.204 0.000 0.000 0.990 0.000 0.062 0.054 0.008 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.153 0.001 0.000 0.480 0.614 0.568 0.000
1stFlrSF 0.689 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 NA 0.000 0.587 0.000 0.000 0.940 0.000 0.000 0.000 0.009 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.013 0.032 0.001 0.000 0.421 0.231 0.603 0.000
2ndFlrSF 0.831 0.000 0.005 0.051 0.000 0.269 0.694 0.000 0.000 0.000 0.000 0.865 0.000 0.000 NA 0.015 0.000 0.000 0.362 0.000 0.000 0.000 0.023 0.000 0.000 0.009 0.000 0.000 0.000 0.000 0.018 0.352 0.121 0.002 0.536 0.179 0.273 0.000
LowQualFinSF 0.091 0.076 0.183 0.855 0.245 0.330 0.000 0.017 0.008 0.014 0.572 0.282 0.204 0.587 0.015 NA 0.000 0.072 0.824 0.978 0.301 0.000 0.774 0.000 0.417 0.177 0.000 0.010 0.331 0.486 0.020 0.870 0.306 0.018 0.885 0.397 0.269 0.328
GrLivArea 0.752 0.004 0.000 0.000 0.000 0.002 0.000 0.000 0.000 0.000 0.713 0.000 0.000 0.000 0.000 0.000 NA 0.183 0.470 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.728 0.431 0.000 0.000 0.927 0.055 0.163 0.000
BsmtFullBath 0.930 0.894 0.000 0.000 0.000 0.036 0.000 0.000 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.072 0.183 NA 0.000 0.014 0.238 0.000 0.113 0.042 0.000 0.000 0.000 0.000 0.000 0.010 0.057 0.997 0.377 0.010 0.379 0.333 0.010 0.000
BsmtHalfBath 0.442 0.929 0.802 0.066 0.125 0.000 0.145 0.638 0.310 0.010 0.007 0.000 0.990 0.940 0.362 0.824 0.470 0.000 NA 0.037 0.638 0.076 0.147 0.363 0.269 0.004 0.425 0.349 0.125 0.334 0.744 0.180 0.220 0.445 0.779 0.209 0.076 0.520
FullBath 0.831 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.025 0.003 0.000 0.000 0.000 0.000 0.978 0.000 0.014 0.037 NA 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.177 0.757 0.058 0.585 0.033 0.453 0.000
HalfBath 0.796 0.000 0.064 0.586 0.000 0.020 0.000 0.000 0.000 0.871 0.220 0.116 0.062 0.000 0.000 0.301 0.000 0.238 0.638 0.000 NA 0.000 0.009 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.849 0.006 0.393 0.961 0.730 0.695 0.000
BedroomAbvGr 0.150 0.371 0.000 0.000 0.000 0.620 0.007 0.121 0.000 0.000 0.548 0.000 0.054 0.000 0.000 0.000 0.000 0.000 0.076 0.000 0.000 NA 0.000 0.000 0.000 0.017 0.001 0.013 0.073 0.000 0.112 0.350 0.091 0.007 0.767 0.075 0.169 0.000
KitchenAbvGr 0.910 0.000 0.834 0.497 0.000 0.001 0.000 0.000 0.152 0.002 0.120 0.251 0.008 0.009 0.023 0.774 0.000 0.113 0.147 0.000 0.009 0.000 NA 0.000 0.000 0.000 0.053 0.014 0.001 0.007 0.154 0.348 0.049 0.579 0.017 0.310 0.226 0.000
TotRmsAbvGrd 0.298 0.123 0.000 0.000 0.000 0.028 0.000 0.000 0.000 0.091 0.179 0.000 0.000 0.000 0.000 0.000 0.000 0.042 0.363 0.000 0.000 0.000 0.000 NA 0.000 0.000 0.000 0.000 0.000 0.000 0.874 0.799 0.023 0.001 0.344 0.159 0.187 0.000
Fireplaces 0.450 0.082 0.000 0.000 0.000 0.363 0.000 0.000 0.000 0.000 0.073 0.049 0.000 0.000 0.000 0.417 0.000 0.000 0.269 0.000 0.000 0.000 0.000 0.000 NA 0.082 0.000 0.000 0.000 0.000 0.343 0.667 0.000 0.000 0.957 0.077 0.358 0.000
GarageYrBlt 0.998 0.002 0.018 0.355 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.000 0.000 0.000 0.009 0.177 0.000 0.000 0.004 0.000 0.000 0.017 0.000 0.000 0.082 NA 0.000 0.000 0.000 0.000 0.000 0.382 0.005 0.591 0.229 0.843 0.970 0.000
GarageCars 0.527 0.126 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.144 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.425 0.000 0.000 0.001 0.053 0.000 0.000 0.000 NA 0.000 0.000 0.000 0.000 0.172 0.054 0.424 0.100 0.122 0.135 0.000
GarageArea 0.501 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.486 0.000 0.000 0.000 0.000 0.010 0.000 0.000 0.349 0.000 0.000 0.013 0.014 0.000 0.000 0.000 0.000 NA 0.000 0.000 0.000 0.180 0.050 0.020 0.295 0.285 0.296 0.000
WoodDeckSF 0.258 0.631 0.002 0.000 0.000 0.899 0.000 0.000 0.000 0.000 0.009 0.839 0.000 0.000 0.000 0.331 0.000 0.000 0.125 0.000 0.000 0.073 0.001 0.000 0.000 0.000 0.000 0.000 NA 0.025 0.000 0.211 0.005 0.005 0.715 0.422 0.395 0.000
OpenPorchSF 0.985 0.816 0.000 0.001 0.000 0.213 0.000 0.000 0.000 0.000 0.906 0.000 0.000 0.000 0.000 0.486 0.000 0.010 0.334 0.000 0.000 0.000 0.007 0.000 0.000 0.000 0.000 0.000 0.025 NA 0.000 0.823 0.005 0.020 0.478 0.006 0.028 0.000
EnclosedPorch 0.912 0.646 0.711 0.484 0.000 0.007 0.000 0.000 0.000 0.000 0.163 0.923 0.000 0.013 0.018 0.020 0.728 0.057 0.744 0.000 0.000 0.112 0.154 0.874 0.343 0.000 0.000 0.000 0.000 0.000 NA 0.154 0.002 0.038 0.483 0.270 0.705 0.000
3SsnPorch 0.075 0.094 0.015 0.436 0.246 0.330 0.231 0.084 0.474 0.313 0.252 0.428 0.153 0.032 0.352 0.870 0.431 0.997 0.180 0.177 0.849 0.350 0.348 0.799 0.667 0.382 0.172 0.180 0.211 0.823 0.154 NA 0.230 0.760 0.989 0.260 0.477 0.089
ScreenPorch 0.959 0.320 0.152 0.099 0.013 0.036 0.054 0.139 0.019 0.018 0.001 0.631 0.001 0.001 0.121 0.306 0.000 0.377 0.220 0.757 0.006 0.091 0.049 0.023 0.000 0.005 0.054 0.050 0.005 0.005 0.002 0.230 NA 0.050 0.222 0.375 0.683 0.000
PoolArea 0.029 0.752 0.000 0.003 0.013 0.940 0.850 0.824 0.655 0.000 0.111 0.180 0.000 0.000 0.002 0.018 0.000 0.010 0.445 0.058 0.393 0.007 0.579 0.001 0.000 0.591 0.424 0.020 0.005 0.020 0.038 0.760 0.050 NA 0.257 0.198 0.023 0.000
MiscVal 0.812 0.769 0.907 0.146 0.230 0.009 0.189 0.695 0.256 0.892 0.850 0.363 0.480 0.421 0.536 0.885 0.927 0.379 0.779 0.585 0.961 0.767 0.017 0.344 0.957 0.229 0.100 0.295 0.715 0.478 0.483 0.989 0.222 0.257 NA 0.804 0.851 0.418
MoSold 0.419 0.604 0.698 0.963 0.007 0.893 0.636 0.412 0.820 0.548 0.561 0.183 0.614 0.231 0.179 0.397 0.055 0.333 0.209 0.033 0.730 0.075 0.310 0.159 0.077 0.843 0.122 0.285 0.422 0.006 0.270 0.260 0.375 0.198 0.804 NA 0.000 0.076
YrSold 0.978 0.414 0.796 0.586 0.296 0.093 0.603 0.172 0.755 0.584 0.226 0.115 0.568 0.603 0.273 0.269 0.163 0.010 0.076 0.453 0.695 0.169 0.226 0.187 0.358 0.970 0.135 0.296 0.395 0.028 0.705 0.477 0.683 0.023 0.851 0.000 NA 0.269
SalePrice 0.403 0.001 0.000 0.000 0.000 0.003 0.000 0.000 0.000 0.000 0.664 0.000 0.000 0.000 0.000 0.328 0.000 0.000 0.520 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.089 0.000 0.000 0.418 0.076 0.269 NA
melted_cormat %>%
  filter(Var1 == "SalePrice") %>%
  filter(Var2 != "SalePrice") %>% 
  top_n(n = 10, wt = value) %>%
  arrange(-value) -> top_cor
kable(top_cor)
Var1 Var2 value
SalePrice OverallQual 0.7910
SalePrice GrLivArea 0.7086
SalePrice GarageCars 0.6404
SalePrice GarageArea 0.6234
SalePrice TotalBsmtSF 0.6136
SalePrice 1stFlrSF 0.6059
SalePrice FullBath 0.5607
SalePrice TotRmsAbvGrd 0.5337
SalePrice YearBuilt 0.5229
SalePrice YearRemodAdd 0.5071
train_nuemric %>% select(SalePrice, OverallQual, GrLivArea, GarageCars, GarageArea,
                         TotalBsmtSF, `1stFlrSF`, FullBath, TotRmsAbvGrd, YearBuilt,
                         YearRemodAdd) -> train_top

۲. در یک تصویر نمودار پراکنش دو به دو ده متغیر بدست آمده به همراه قیمت را رسم نمایید و هم خطی بودن متغیرها را بررسی کنید

طبق نمودار ها می توان دید که برخی جفت ها با هم خطی دارند. مثل SalePrice-OverallQual, SalePrice-GrLivArea, GrLivArea-1stFlrSF, TotalBsmtSF-1stFlrSF, GrLivArea-TotRmsAbvGrd.

برای بررسی وجود هم خطی میان متغیرها از تست Farrar-Glauber و چند تست دیگر استفاده می کنیم. مقادیر این تست به ما نشان می دهند که برای مدل خطیمان هم خطی داریم که چیز خوبی نیست. نتیجتن باید چند تا از ستون ها را حذف کنیم تا هم خطی را از بین ببریم.

library(car)
scatterplotMatrix(train_top)

library(GGally)
ggpairs(train_top)

library(mctest)
omcdiag(train_top %>% select(-SalePrice), train_top$SalePrice)
## 
## Call:
## omcdiag(x = train_top %>% select(-SalePrice), y = train_top$SalePrice)
## 
## 
## Overall Multicollinearity Diagnostics
## 
##                        MC Results detection
## Determinant |X'X|:         0.0007         1
## Farrar Chi-Square:     10652.4387         1
## Red Indicator:             0.4852         0
## Sum of Lambda Inverse:    34.9056         0
## Theil's Method:           -0.2152         0
## Condition Number:        545.2532         1
## 
## 1 --> COLLINEARITY is detected by the test 
## 0 --> COLLINEARITY is not detected by the test
imcdiag(train_top %>% select(-SalePrice), train_top$SalePrice)
## 
## Call:
## imcdiag(x = train_top %>% select(-SalePrice), y = train_top$SalePrice)
## 
## 
## All Individual Multicollinearity Diagnostics Result
## 
##                 VIF    TOL       Wi       Fi Leamer    CVIF Klein
## OverallQual  2.7486 0.3638 281.7235 317.1576 0.6032 -0.2222     0
## GrLivArea    5.0188 0.1993 647.4656 728.9011 0.4464 -0.4056     1
## GarageCars   5.2510 0.1904 684.8768 771.0177 0.4364 -0.4244     1
## GarageArea   4.9310 0.2028 633.3298 712.9874 0.4503 -0.3986     1
## TotalBsmtSF  3.6027 0.2776 419.3196 472.0599 0.5269 -0.2912     0
## 1stFlrSF     3.6847 0.2714 432.5392 486.9422 0.5210 -0.2978     0
## FullBath     2.2155 0.4514 195.8305 220.4613 0.6718 -0.1791     0
## TotRmsAbvGrd 3.3565 0.2979 379.6611 427.4133 0.5458 -0.2713     0
## YearBuilt    2.3458 0.4263 216.8276 244.0993 0.6529 -0.1896     0
## YearRemodAdd 1.7510 0.5711 121.0020 136.2211 0.7557 -0.1415     0
## 
## 1 --> COLLINEARITY is detected by the test 
## 0 --> COLLINEARITY is not detected by the test
## 
## GarageArea , TotRmsAbvGrd , coefficient(s) are non-significant may be due to multicollinearity
## 
## R-square of y on all x: 0.7737 
## 
## * use method argument to check which regressors may be the reason of collinearity
## ===================================

۳. یک مدل خطی بر اساس ده متغیر برای پیش بینی قیمت برازش دهید. و سپس خلاصه نتایج مدل را به دست آورید.

fit <- lm(SalePrice ~ ., data=train_top)
summary(fit) # show results
## 
## Call:
## lm(formula = SalePrice ~ ., data = train_top)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -489958  -19316   -1948   16020  290558 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -1.186e+06  1.291e+05  -9.187  < 2e-16 ***
## OverallQual   1.960e+04  1.190e+03  16.472  < 2e-16 ***
## GrLivArea     5.130e+01  4.233e+00  12.119  < 2e-16 ***
## GarageCars    1.042e+04  3.044e+03   3.422 0.000639 ***
## GarageArea    1.495e+01  1.031e+01   1.450 0.147384    
## TotalBsmtSF   1.986e+01  4.295e+00   4.625 4.09e-06 ***
## `1stFlrSF`    1.417e+01  4.930e+00   2.875 0.004097 ** 
## FullBath     -6.791e+03  2.682e+03  -2.532 0.011457 *  
## TotRmsAbvGrd  3.310e+01  1.119e+03   0.030 0.976404    
## YearBuilt     2.682e+02  5.035e+01   5.328 1.15e-07 ***
## YearRemodAdd  2.965e+02  6.363e+01   4.659 3.47e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 37920 on 1449 degrees of freedom
## Multiple R-squared:  0.7737, Adjusted R-squared:  0.7721 
## F-statistic: 495.4 on 10 and 1449 DF,  p-value: < 2.2e-16

۴. نمودار قیمت واقعی و قیمت پیش بینی را رسم نمایید و خوب بودن مدل را ارزیابی کنید.

برای اینکه مدل خوب باشد باید داده ها نزدیک خط \(x=y\) باشند. که تا حد قابل قبولی این طور هست.

train_top %>% 
  mutate(PricePredict = predict(fit)) -> train_top_pre

ggplot(train_top_pre) +
  geom_point(aes(x = SalePrice, y = PricePredict), alpha = 0.3, colour = "blue")+
  geom_abline(slope = 1, intercept = 0, color = "red", size = 1, alpha = 0.5)


۵. مقدار R-squared مدل را به دست آورید. آیا بر اساس این کمیت مدل به خوبی به داده ها برازش داده شده است؟ کمیت F-statistic را در خلاصه مدل تفسیر نمایید.

مقدار R-squared مشخص می کند که مدلمان تا چه حدی تغییرات داده را می تواند توضیح دهد. مقدار adjusted-R-sqaured هم تاثیر زیاد بودن تعداد متغیرهای رگرسیون را کمتر می کند. این مقدار حدودن می شود \(0.77\) که تا حد خوبی قابل قبول است.

کمیت f-statistic اگر زیاد باشد نشانه ی وجود ارتباطی میان predictor های ما و response است. که در اینجا از آنجایی که مقدار آن زیاد است و پی ولیو هم بسیار کوچک است می توان این نتیجه را گرفت که ارتباطی وجود دارد. در واقع بیشتر بودن این مقدار اعتماد ما را به r-squared به دست آمده بیشتر می کند.

summary_fit<- summary(fit)
summary_fit
## 
## Call:
## lm(formula = SalePrice ~ ., data = train_top)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -489958  -19316   -1948   16020  290558 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -1.186e+06  1.291e+05  -9.187  < 2e-16 ***
## OverallQual   1.960e+04  1.190e+03  16.472  < 2e-16 ***
## GrLivArea     5.130e+01  4.233e+00  12.119  < 2e-16 ***
## GarageCars    1.042e+04  3.044e+03   3.422 0.000639 ***
## GarageArea    1.495e+01  1.031e+01   1.450 0.147384    
## TotalBsmtSF   1.986e+01  4.295e+00   4.625 4.09e-06 ***
## `1stFlrSF`    1.417e+01  4.930e+00   2.875 0.004097 ** 
## FullBath     -6.791e+03  2.682e+03  -2.532 0.011457 *  
## TotRmsAbvGrd  3.310e+01  1.119e+03   0.030 0.976404    
## YearBuilt     2.682e+02  5.035e+01   5.328 1.15e-07 ***
## YearRemodAdd  2.965e+02  6.363e+01   4.659 3.47e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 37920 on 1449 degrees of freedom
## Multiple R-squared:  0.7737, Adjusted R-squared:  0.7721 
## F-statistic: 495.4 on 10 and 1449 DF,  p-value: < 2.2e-16

۶. بر اساس p-value سطح معناداری ضرایب تصمیم بگیرید که چه متغیرهایی در مدل سازی استفاده شود. بر اساس متغیرهای جدید دوباره مدل سازی کنید و نتایج رو گزارش دهید.

بر اساس پی ولیوها به این نتیجه می رسیم که دو تا از عوامل ربط معناداری ندارند و آن ها را حذف می کنیم. حال اگر دوباره یک مدل خطی به داده هایمان فیت کنیم خواهیم دید که r-sqaured تغییر چندانی نمی کند یعنی مدل ما همان سطح از تغییرات را می تواند توجیه کند، ولی f-statistic ما بیشتر شده که بیانگر این است که ارتباط بیشتری بین predicatorها و response وجود است واطمینان ما از مقدار r-squared را بیشتر می کند.

train_top %>% 
  select(-GarageArea, -TotRmsAbvGrd) -> train_sig

fit_sig <- lm(SalePrice ~ ., data=train_sig)
summary(fit_sig)
## 
## Call:
## lm(formula = SalePrice ~ ., data = train_sig)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -482525  -19191   -1801   16208  289639 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -1.188e+06  1.284e+05  -9.255  < 2e-16 ***
## OverallQual   1.959e+04  1.188e+03  16.486  < 2e-16 ***
## GrLivArea     5.177e+01  3.097e+00  16.714  < 2e-16 ***
## GarageCars    1.395e+04  1.817e+03   7.680 2.92e-14 ***
## TotalBsmtSF   2.039e+01  4.269e+00   4.775 1.98e-06 ***
## `1stFlrSF`    1.465e+01  4.919e+00   2.979  0.00294 ** 
## FullBath     -7.184e+03  2.644e+03  -2.717  0.00666 ** 
## YearBuilt     2.699e+02  5.017e+01   5.380 8.69e-08 ***
## YearRemodAdd  2.957e+02  6.362e+01   4.649 3.64e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 37920 on 1451 degrees of freedom
## Multiple R-squared:  0.7734, Adjusted R-squared:  0.7721 
## F-statistic: 618.9 on 8 and 1451 DF,  p-value: < 2.2e-16

۷. مدل خود را بر اساس باقی مانده نقص یابی کنید. سه محک normality, independance, Constant Variance را در نقص یابی خود در نظر بگیرید.

Constant-Variance: برای بررسی این نکته از تست Breusch-Pagan استفاده می کنیم که فرض صفر آن این است که واریانس باقیمانده ها ثابت است. که رد می شود. پس این نکته درست نیست. همچنین با مشاهده ی نمودار باقی مانده ها و مقادیر فیت شده هم می توانیم ببینیم که یک روند وجود دارد و ثابت نیست.

independence: برای بررسی این نکته بررسی می کنیم تا ببینم آیا autocorrelation بین باقی مانده ها وجود دارد یا نه. برای بررسی این نکته از نمودار acf استفاده می کنیم. اگر باقی مانده ها autocorrelated نباشند باید بعد از lag0 نمودارمون بین ۲ خط آبی بیفتد (significance-level) که همین اتفاق هم افتاده. پس autocorrelation نداریم. راه دیگر برای بررسی این موضوع هم تست های randomness و durbin-watson اند. که نشان می دهند شواهد کافی برای رد کردن فرض autocorrelated نبودن وجود ندارد.

normality: برای بررسی این نکته از نمودار qqnorm استفاده می کنیم. اگر باقی مانده های ما روی یک خط باشند معنای آن این است که باقی مانده های ما نرمال هستند. راه دیگر برای بررسی این موضوع هم استفاده از تست های بررسی نرمال بودن است. در ادامه هم مشاهده می کنیم که طبق ۴ تا از این تست ها فرض نرمال بودن باقی مانده ها رد می شود. پس باقی مانده هایمان نرمال نیستند.

در آخر هم از تابع gvlma استفاده می کنیم که به طور خلاصه فرضیات رگرسیون خطی را برای مدلمان بررسی می کند.

پس در مجموع داده های ما در فرض های رگرسیون خطی صدق نمی کنند.

# Evaluate homoscedasticity
# non-constant error variance test
lmtest::bptest(fit_sig)  # Breusch-Pagan test
## 
##  studentized Breusch-Pagan test
## 
## data:  fit_sig
## BP = 395.73, df = 8, p-value < 2.2e-16
ncvTest(fit_sig)  # Breusch-Pagan test
## Non-constant Variance Score Test 
## Variance formula: ~ fitted.values 
## Chisquare = 2921.508    Df = 1     p = 0
# plot studentized residuals vs. fitted values 
spreadLevelPlot(fit_sig)

## 
## Suggested power transformation:  0.6280349
olsrr::ols_plot_resid_fit(fit_sig)

#No autocorrelation of residuals
acf(fit_sig$residuals)

# Method 2: Runs test to test for randomness
lawstat::runs.test(fit_sig$residuals)
## 
##  Runs Test - Two sided
## 
## data:  fit_sig$residuals
## Standardized Runs Statistic = -0.47124, p-value = 0.6375
# Method 3: Durbin-Watson test
lmtest::dwtest(fit_sig)
## 
##  Durbin-Watson test
## 
## data:  fit_sig
## DW = 1.9835, p-value = 0.3763
## alternative hypothesis: true autocorrelation is greater than 0
#=>   Durbin-Watson test


# Normality of Residuals
# qq plot for studentized resid
olsrr::ols_plot_resid_qq(fit_sig)

olsrr::ols_test_normality(fit_sig)
## -----------------------------------------------
##        Test             Statistic       pvalue  
## -----------------------------------------------
## Shapiro-Wilk              0.8062         0.0000 
## Kolmogorov-Smirnov        0.1059         0.0000 
## Cramer-von Mises         123.5906        0.0123 
## Anderson-Darling          35.91          0.0000 
## -----------------------------------------------
# all together
gvlma::gvlma(fit_sig)
## 
## Call:
## lm(formula = SalePrice ~ ., data = train_sig)
## 
## Coefficients:
##  (Intercept)   OverallQual     GrLivArea    GarageCars   TotalBsmtSF  
##   -1.188e+06     1.959e+04     5.177e+01     1.395e+04     2.038e+01  
##   `1stFlrSF`      FullBath     YearBuilt  YearRemodAdd  
##    1.465e+01    -7.184e+03     2.699e+02     2.957e+02

۸. داده ها را به پنج قسمت تقسیم کنید. بر اساس چهار قسمت مدل خطی را بسازید و صحت مدل را برای یک قسمت باقی مانده را تست کنید. خطای پیش بینی شما چقدر است؟

برای محاسبه ی خطا میانگین مربعات خطای حاصل از اختلاف مقدار پیش بینی شده و مقدار واقعی را به دست می آوریم. همچنین میانگین مربعی خطا ها (MSE) را هم به دست می آوریم.

set.seed(200)
#shuffling
train_sig_cv <- train_sig[sample(nrow(train_sig)),]

train_sig_cv_train <-
  train_sig_cv  %>% filter(row_number() < 0.8 * n())
train_sig_cv_test <-
  train_sig_cv  %>%  filter(row_number() >= 0.8 * n())

testmodel = lm(SalePrice ~ ., data= train_sig_cv_train)


train_sig_cv_test_pre_err <-
  train_sig_cv_test %>%
  mutate(pred =  predict.lm(testmodel, train_sig_cv_test, type = "response")) %>% 
  mutate(err = (SalePrice - pred) * (SalePrice - pred)) %>% 
  dplyr::select(SalePrice, pred, err)

model_error <- mean(train_sig_cv_test_pre_err$err)
model_error
## [1] 1148541154
sqrt(model_error)
## [1] 33890.13

۹. آیا قیمت ربط غیر خطی با یکی از ده متغیر استفاده شده دارد؟ بر اساس دستاوردهای خود مدل را بهتر نمایید.

نمودار SalePrice را در مقابل سایر متغیرها می کشیم و مشاهده می کنیم که ۲ تا از متغیرها ربط غیرخطی دارند و به نظر از درجه ی ۲ دارند.

ولی برای بهترشدن مدل و کسب رتبه ی بهتر در kaggle! به روش آزمون و خطا از درجات بالاتر سایر متغیرها هم استفاده می کنیم تا بهتر بتوانیم آن ها را توصیف کنیم. همچنین به جای خود SalePrice از لگاریتم آن استفاده می کنیم.

sp <- train_top$SalePrice
for(i in 2:11){
  other <- train_top[, i]
  sp_other <- data.frame(sp = sp,
                   xaxis = other)
  colnames(sp_other) <- c("sp", "xaxis")
  ggplot(sp_other, aes(x=xaxis, y=sp)) + 
    geom_point(alpha = 0.3)+
    geom_smooth(method = "loess")+
    geom_smooth(method = "lm", color = "red", alpha = 0.5)+
    xlab(colnames(other))+
    ylab(colnames(sp)) -> graph
  print(graph)
}

#####
#####   OverallQual
other <- train_top[, 2]
sp_other <- data.frame(sp = sp,
                 xaxis = other*other)
colnames(sp_other) <- c("sp", "xaxis")
ggplot(sp_other, aes(x=xaxis, y=sp)) + 
  geom_point(alpha = 0.3)+
  geom_smooth(method = "loess")+
  geom_smooth(method = "lm", color = "red", alpha = 0.5)+
  xlab(paste(colnames(other), "^2"))+
  ylab(colnames(sp)) -> graph
print(graph)

#####
#####   TotalBsmtSF
other <- train_top[, 6]
sp_other <- data.frame(sp = sp,
                       xaxis = other *other)
colnames(sp_other) <- c("sp", "xaxis")
ggplot(sp_other %>% filter(xaxis < 30000000), aes(x=xaxis, y=sp)) + 
  geom_point(alpha = 0.3)+
  geom_smooth(method = "loess")+
  geom_smooth(method = "lm", color = "red", alpha = 0.5)+
  xlab(paste(colnames(other), "^2"))+
  ylab(colnames(sp)) -> graph
print(graph)

#####
#####   improving model

train_top_improved <- train_top %>% 
  mutate(TotalBsmtSF2 = TotalBsmtSF ** 2,
         TotalBsmtSF3 = TotalBsmtSF ** 3,
         OverallQual2 = OverallQual ** 2,
         OverallQual3 = OverallQual ** 3,
         GrLivArea2 = GrLivArea ** 2,
         GarageArea2 = GarageArea ** 2,
         YearBuilt2 = YearBuilt ** 2)

model_improved <- lm(log2(SalePrice) ~ ., data = train_top_improved %>%
                       dplyr::select(-TotRmsAbvGrd, -GarageArea, -TotalBsmtSF, -`1stFlrSF`))
summary(model_improved)
## 
## Call:
## lm(formula = log2(SalePrice) ~ ., data = train_top_improved %>% 
##     dplyr::select(-TotRmsAbvGrd, -GarageArea, -TotalBsmtSF, -`1stFlrSF`))
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.84406 -0.10406  0.01634  0.12898  0.80179 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -1.748e+02  2.947e+01  -5.932 3.73e-09 ***
## OverallQual   4.367e-01  9.351e-02   4.670 3.29e-06 ***
## GrLivArea     6.943e-04  5.298e-05  13.105  < 2e-16 ***
## GarageCars    8.263e-02  1.411e-02   5.858 5.78e-09 ***
## FullBath     -4.828e-02  1.608e-02  -3.003 0.002715 ** 
## YearBuilt     1.826e-01  2.990e-02   6.108 1.30e-09 ***
## YearRemodAdd  4.258e-03  4.047e-04  10.521  < 2e-16 ***
## TotalBsmtSF2  1.681e-07  1.183e-08  14.216  < 2e-16 ***
## TotalBsmtSF3 -3.499e-11  2.569e-12 -13.619  < 2e-16 ***
## OverallQual2 -5.279e-02  1.575e-02  -3.352 0.000822 ***
## OverallQual3  2.908e-03  8.565e-04   3.396 0.000703 ***
## GrLivArea2   -7.637e-08  1.338e-08  -5.707 1.40e-08 ***
## GarageArea2   1.066e-07  4.475e-08   2.381 0.017373 *  
## YearBuilt2   -4.598e-05  7.658e-06  -6.005 2.42e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2226 on 1446 degrees of freedom
## Multiple R-squared:  0.8521, Adjusted R-squared:  0.8508 
## F-statistic: 640.8 on 13 and 1446 DF,  p-value: < 2.2e-16

۱۰. بر اساس مدل نهایی به دست آمده نتایج پیش بینی خود را بر روی test.csv به دست آورید و در سایت kaggle در مسابقه House Prices: Advanced Regression Techniques بارگذاری نمایید. سپس لینک رتبه و عدد آن را ضمیمه تمرین کنید.

read_csv("./../house/test.csv") -> test_data

test_data_2 <- test_data %>% 
  mutate(TotalBsmtSF2 = TotalBsmtSF ** 2,
         TotalBsmtSF3 = TotalBsmtSF ** 3,
         OverallQual2 = OverallQual ** 2,
         OverallQual3 = OverallQual ** 3,
         OverallQual4 = OverallQual ** 3,
         GrLivArea2 = GrLivArea ** 2,
         GarageArea2 = GarageArea ** 2,
         YearBuilt2 = YearBuilt ** 2)
test_data_2[is.na(test_data_2)] <- 0

test_data_2 %>% 
  mutate(SalePrice = 2 ** predict.lm(model_improved, test_data_2)) %>% 
  dplyr::select(Id, SalePrice) -> result

write_csv(result, "./../result.csv")

نتیجه و رتبه

score

score